基于Verilog HDL的UART模塊設(shè)計(jì)與仿真
2.1 波特率發(fā)生器
波特率表示的是每秒鐘傳送的二進(jìn)制數(shù)據(jù)的位數(shù),即單位時(shí)間內(nèi)傳送的信息量。在串行異步傳送中,常用到的波特率為1 200、2 400、4 800、9 600、19 200等。波特率發(fā)生器實(shí)際上是一個(gè)分頻器,主要是產(chǎn)生和。RS-232通信所采用的波特率同步的時(shí)鐘。由于串行數(shù)據(jù)幀與接收數(shù)據(jù)時(shí)鐘是異步的,所以存UART的接收端在什么時(shí)刻將數(shù)據(jù)移入寄存器,怎樣選擇可靠的采樣點(diǎn)是非常關(guān)鍵的。一般采用高速時(shí)鐘對(duì)串行數(shù)據(jù)采樣是非常有效的方法。在實(shí)際設(shè)計(jì)中,一般最大選擇16倍于波特率的時(shí)鐘頻率。實(shí)現(xiàn)波特率時(shí)鐘的基本思路就是設(shè)計(jì)一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器工作在速度很高的系統(tǒng)時(shí)鐘下,通過總線寫入不同的數(shù)值到波特率發(fā)生器保持寄存器中,然后用計(jì)數(shù)器的方式生成所需要的各種波特率就能得到所需的波特率時(shí)鐘,仿真如圖3所示。本文引用地址:http://www.ex-cimer.com/article/191639.htm
2.2 接收模塊
接收模塊是整個(gè)UART的設(shè)計(jì)的重點(diǎn),其主要功能是檢測(cè)數(shù)據(jù)的起始位,并對(duì)接收的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,并將接收好的數(shù)據(jù)儲(chǔ)存等待微機(jī)處理。由于串行數(shù)據(jù)幀與接收數(shù)據(jù)時(shí)鐘是異步的,接收功能實(shí)現(xiàn)的關(guān)鍵是接收器與每個(gè)接收字符同步。要保證異步通信的雙方準(zhǔn)確無誤地交換信息,必須有效控制采集通信線路上的電平信號(hào)的時(shí)機(jī)。由異步串行通信的特點(diǎn)可知,接收同步是通過低電平起始位實(shí)現(xiàn)的。而為了保證采樣的正確性,采樣在數(shù)據(jù)位的中間進(jìn)行,并且接收單元采樣數(shù)據(jù)的頻率與發(fā)送單元發(fā)送數(shù)據(jù)的頻率相同,是波特率時(shí)鐘周期的16倍,這樣可以有效地降低由于時(shí)鐘不匹配而導(dǎo)致的誤采樣。接收模塊的設(shè)計(jì)主要由狀態(tài)機(jī)實(shí)現(xiàn)其核心功能,采用獨(dú)熱編碼方式,雖然獨(dú)熱編碼多用了兩個(gè)觸發(fā)器,但所用組合電路可節(jié)省一些,使電路的速度和可靠性有顯著提高??刂平邮掌鞯钠鹗迹V刮粰z測(cè),接收數(shù)據(jù)的計(jì)數(shù),移位寄存的功能。狀態(tài)機(jī)分為5個(gè)狀態(tài),分別為:IDEL,CENTER,WAIT,SAMPLE,STOP。狀態(tài)轉(zhuǎn)換圖如圖4所示。
1)IDLE狀態(tài) 系統(tǒng)被復(fù)位后,接收狀態(tài)機(jī)進(jìn)入IDLE狀態(tài),等待起始位到來,輸入數(shù)據(jù)在空閑時(shí)保持為1,當(dāng)輸入由“l(fā)”跳變?yōu)椤?”時(shí),狀態(tài)機(jī)跳轉(zhuǎn)到CENTER狀態(tài)。
2)CENTER狀態(tài) 啟動(dòng)起始位檢測(cè)電路,為排除噪聲干擾,狀態(tài)機(jī)等待8個(gè)脈沖,如果數(shù)據(jù)線上仍為低電平,則狀態(tài)機(jī)跳轉(zhuǎn)到WAIT狀態(tài),并啟動(dòng)采樣電路。如果是噪聲干擾,則轉(zhuǎn)入IDLE態(tài)。
3)WAIT狀態(tài) 狀態(tài)機(jī)WAIT狀態(tài),判斷數(shù)據(jù)接收是否完畢,若未完成采樣,則轉(zhuǎn)入SAMPLE狀態(tài)進(jìn)行數(shù)據(jù)位的采樣檢測(cè),同時(shí)啟動(dòng)位計(jì)數(shù)器,用來控制數(shù)據(jù)接收的位數(shù)。無論停止位是幾位,狀態(tài)機(jī)只對(duì)停止位作一次采樣。接收完畢,轉(zhuǎn)入STOP狀態(tài)。
4)SAMPLE狀態(tài) 在此狀態(tài)對(duì)串口輸入數(shù)據(jù)進(jìn)行采樣,每次采樣均位于數(shù)據(jù)位的中心。并每接收完一位數(shù)據(jù),狀態(tài)機(jī)轉(zhuǎn)入WAIT狀態(tài)。
評(píng)論